﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FacProFacu;
using Comun;

namespace Guada
{
    public partial class FrmModProfesional : Plantilla
    {
        public FrmModProfesional()
        {
            InitializeComponent();
        }

        private void FrmModProfesional_Load(object sender, EventArgs e)
        {
            try
            {
                grpDatosProfesional.Enabled = false;
                grpDatosDomicilio.Enabled = false;

                FacProFacu.Sistema sistema = new FacProFacu.Sistema();
                Controles control = new Controles();
                control.CargarCBox(cmbEspecialidad, sistema.GetEspecialidad().Tables["ESPECIALIDADES"], "CODIGO", "DESCRIPCION", Controles.ComboBoxLabel.SelectOne);
                control.CargarCBox(cmbSexo, sistema.TablaDeTabla("2", "SEXO").Tables["SEXO"], "CODIGO", "DESCRIPCION", Controles.ComboBoxLabel.SelectOne);
                control.CargarCBox(cmbEstadoCivil, sistema.TablaDeTabla("3", "ESTADOCIVIL").Tables["ESTADOCIVIL"], "CODIGO", "DESCRIPCION", Controles.ComboBoxLabel.SelectOne);
                control.CargarCBox(cmbTipoDoc, sistema.TablaDeTabla("1", "TIPODOC").Tables["TIPODOC"], "CODIGO", "DESCRIPCION", Controles.ComboBoxLabel.SelectOne);
            }
            catch
            {
                MessageBox.Show("Se ha producido un Error", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void BtnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void BtnGrabar_Click(object sender, EventArgs e)
        {
            int alta = 0;

            if (ValidarCampos())
            {
                Usuario sistema = new Usuario();
                alta = sistema.ModificacionProfesional(txtsProfesional.Text.Trim(), txtNombre.Text.Trim(), txtApellido.Text.Trim(),
                    txtMatricula.Text.Trim(), cmbEspecialidad.SelectedIndex.ToString(), cmbTipoDoc.SelectedValue.ToString().Trim(),
                    txtDocumento.Text.Trim(), cmbSexo.SelectedValue.ToString().Trim(), dateTime.Text.Trim(), cmbEstadoCivil.SelectedValue.ToString().Trim(),
                    txtMail.Text.Trim(), txtCalle.Text.Trim(), txtNumCalle.Text.Trim(), txtDpto.Text.Trim(), txtPiso.Text.Trim(),
                    txtCodPostal.Text.Trim(), txtLocalidad.Text.Trim(), txtProv.Text.Trim(), txtTel.Text.Trim(), txtCelular.Text.Trim());

                if (alta > 0)
                {
                    MessageBox.Show("Se ha realizado la actualizacion de los datos del profesional con exito!", "MODIFICACION DE PROFESIONAL", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            DataTable Dt = new DataTable();
            Sistema profesional = new Sistema();

            if (txtsProfesional.Text.Trim() != string.Empty)
            {
                string sProf;

                string[] idProfesional = txtsProfesional.Text.Split('-');

                if (idProfesional.Length > 1)
                {
                    sProf = idProfesional[0];
                }
                else
                {
                    sProf = txtsProfesional.Text;
                }

                grpDatosProfesional.Enabled = true;
                grpDatosDomicilio.Enabled = true;
                Dt = profesional.ObtenerDatosProfesional(sProf).Tables["PROFESIONAL"];
                if (Dt.Rows.Count > 0)
                {
                    InicializarCombos(Dt);
                }

            }
            else
            {
                FrmBuscarProfesional ModProfesional = new FrmBuscarProfesional();
                ModProfesional.ShowDialog(this);
                txtsProfesional.Text = ModProfesional.GetProfesional();

                if (txtsProfesional.Text != string.Empty)
                {
                    string sProf;

                    string[] idProfesional = txtsProfesional.Text.Split('-');

                    if (idProfesional.Length > 1)
                    {
                        sProf = idProfesional[0];
                    }
                    else
                    {
                        sProf = txtsProfesional.Text;
                    }

                    Dt = profesional.ObtenerDatosProfesional(sProf).Tables["PROFESIONAL"];
                    if (Dt.Rows.Count > 0)
                    {
                        grpDatosProfesional.Enabled = true;
                        grpDatosDomicilio.Enabled = true;
                        InicializarCombos(Dt);
                        CargarCampos(Dt);
                    }
                }
            }
        }

        private void InicializarCombos(DataTable Dt)
        {
            cmbEspecialidad.SelectedIndex = Convert.ToInt32(Dt.Rows[0]["idespecialidad"]);
            cmbSexo.SelectedValue = Dt.Rows[0]["sexo"].ToString();
            cmbEstadoCivil.SelectedValue = Dt.Rows[0]["estadocivil"].ToString();
            cmbTipoDoc.SelectedIndex = cmbTipoDoc.FindString(Dt.Rows[0]["tipodoc"].ToString());
        }

        private void CargarCampos(DataTable Dt)
        {
            txtsProfesional.Text = Dt.Rows[0]["idprofesional"].ToString() + " - " + Dt.Rows[0]["apellido"].ToString( )+ ", " + Dt.Rows[0]["nombre"].ToString();
            txtNombre.Text = Dt.Rows[0]["nombre"].ToString();
            txtApellido.Text = Dt.Rows[0]["apellido"].ToString();
            txtMatricula.Text = Dt.Rows[0]["nromatricula"].ToString();
            txtDocumento.Text = Dt.Rows[0]["nrodoc"].ToString();
            txtMail.Text = Dt.Rows[0]["email"].ToString();
            dateTime.Text = Dt.Rows[0]["fecNac"].ToString();
            txtCalle.Text = Dt.Rows[0]["calle"].ToString();
            txtNumCalle.Text = Dt.Rows[0]["nrocalle"].ToString();
            txtDpto.Text = Dt.Rows[0]["departamento"].ToString();
            txtPiso.Text = Dt.Rows[0]["piso"].ToString();
            txtCodPostal.Text = Dt.Rows[0]["codpostal"].ToString();
            txtLocalidad.Text = Dt.Rows[0]["localidad"].ToString();
            txtProv.Text = Dt.Rows[0]["provincia"].ToString();
            txtTel.Text = Dt.Rows[0]["telefono"].ToString();
            txtCelular.Text = Dt.Rows[0]["celular"].ToString();
        }

        private bool ValidarCampos()
        {
            bool error = true;

            //Validacion de Combos
            if (cmbEspecialidad.SelectedIndex == 0)
            {
                ErrModProf.SetError(cmbEspecialidad, "Debe seleccionar una Especialidad");
                error = false;
            }
            if (cmbSexo.SelectedIndex == 0)
            {
                ErrModProf.SetError(cmbSexo, "Debe seleccionar el Tipo de Sexo");
                error = false;
            }
            if (cmbEstadoCivil.SelectedIndex == 0)
            {
                ErrModProf.SetError(cmbEstadoCivil, "Debe seleccionar el Estado Civil");
                error = false;
            }
            if (cmbTipoDoc.SelectedIndex == 0)
            {
                ErrModProf.SetError(cmbTipoDoc, "Debe seleccionar un Tipo de Documento");
                error = false;
            }

            //Validaciones de Datos del Profesional
            if (txtNombre.Text == string.Empty)
            {
                ErrModProf.SetError(txtNombre, "Error Nombre");
                error = false;
            }
            if (txtApellido.Text == string.Empty)
            {
                ErrModProf.SetError(txtApellido, "Error Apellido");
                error = false;
            }
            if (txtMatricula.Text == string.Empty)
            {
                ErrModProf.SetError(txtMatricula, "Error Matricula");
                error = false;
            }
            if (txtDocumento.Text == string.Empty)
            {
                ErrModProf.SetError(txtDocumento, "Error Nro. Documento");
                error = false;
            }

            //Validaciones Datos Domiciliarios
            if (txtCalle.Text == string.Empty)
            {
                ErrModProf.SetError(txtCalle, "Error Calle");
                error = false;
            }
            if (txtNumCalle.Text == string.Empty)
            {
                ErrModProf.SetError(txtNumCalle, "Error Nro. Calle");
                error = false;
            }
            if (txtLocalidad.Text == string.Empty)
            {
                ErrModProf.SetError(txtLocalidad, "Error Localidad");
                error = false;
            }
            if (txtProv.Text == string.Empty)
            {
                ErrModProf.SetError(txtProv, "Error Provincia");
                error = false;
            }
            if (txtCodPostal.Text == string.Empty)
            {
                ErrModProf.SetError(txtCodPostal, "Error Codigo Postal");
                error = false;
            }

            return error;
        }
    }
}
